﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Configuration;
using System.Data.SqlClient;
using System.Web.Configuration;

using Office = Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;

namespace TheBullysStore.Models.ModuloVentas.Propiedad
{
    public class PropiedadDAO
    {

        #region Variables para abrir un excel
        private static object vk_missing = System.Reflection.Missing.Value;
        private static object vk_visible = true;
        private static object vk_false = false;
        private static object vk_true = true;
        private object vk_update_links = 0;
        private object vk_read_only = vk_true;
        private object vk_format = 1;
        private object vk_password = vk_missing;
        private object vk_write_res_password = vk_missing;
        private object vk_ignore_read_only_recommend = vk_true;
        private object vk_origin = vk_missing;
        private object vk_delimiter = vk_missing;
        private object vk_editable = vk_false;
        private object vk_notify = vk_false;
        private object vk_converter = vk_missing;
        private object vk_add_to_mru = vk_false;
        private object vk_local = vk_false;
        private object vk_corrupt_load = vk_false;
        #endregion

        public string RegistrarPropiedad(PropiedadBean propiedad)
        {
            string cadena = "1";
            try
            {
                
                if (propiedad.EstadoSelect.CompareTo("EN VENTA")>0){
                    propiedad.Estado = 1;
                }
                if (propiedad.EstadoSelect.CompareTo("VENDIDO") > 0)
                {
                    propiedad.Estado = 2;
                }
                if (propiedad.EstadoSelect.CompareTo("SOLO REGISTRADO") > 0)
                {
                    propiedad.Estado = 3;
                }

                if (propiedad.EstadoSelect.CompareTo("DEPARTAMENTO") > 0)
                {
                    propiedad.TipoInmueble = 1;
                }
                if (propiedad.EstadoSelect.CompareTo("CASA") > 0)
                {
                    propiedad.TipoInmueble = 2;
                }
                if (propiedad.EstadoSelect.CompareTo("CASA DE PLAYA") > 0)
                {
                    propiedad.TipoInmueble = 3;
                }
                if (propiedad.EstadoSelect.CompareTo("OTROS") > 0)
                {
                    propiedad.TipoInmueble = 4;
                }
        
                //switch (propiedad.EstadoSelect)
                //{
                //    case "EN VENTA":
                //        propiedad.Estado = 1;
                //        break;
                //    case "VENDIDO":
                //        propiedad.Estado = 2;
                //        break;
                //    case "SOLO REGISTRADO":
                //        propiedad.Estado = 3;
                //        break;
                //}

                //switch (propiedad.InmuebleSelect)
                //{
                //    case "DEPARTAMENTO":
                //        propiedad.TipoInmueble = 1;
                //        break;
                //    case "CASA":
                //        propiedad.TipoInmueble = 2;
                //        break;
                //    case "CASA DE PLAYA":
                //        propiedad.TipoInmueble = 3;
                //        break;
                //    case "TipoInmueble":
                //        propiedad.TipoInmueble = 4;
                //        break;
                //}

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;
                cadena = cadena + "2";
                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                cadena = cadena + "3";
                sqlCon.Open();
                cadena = cadena + "4";

                string commandString = "INSERT INTO propiedad_en_venta"
                   + "(Direccion"
                   + ",PrecioBase"
                   + ",Comision"
                   + ",AreaTotal"
                   + ",Estado"
                   + ",FechaRegistro"
                   + ",AreaConstruida"
                   + ",id_distrito"
                   + ",Nro_Documento_vendedor"
                   + ",Rango"
                   + ",Id_Dueno"
                   + ",NroDormitorios"
                   + ",TipoInmueble"
                   + ",Descripcion"
                   + ",NroBanos"
                   + ",X"
                   + ",Y"
                   + ",id_vendedor"
                   + ",url) values "
                   + "('"+propiedad.Direccion+"'"
                   + ","+propiedad.PrecioBase+""
                   + ","+propiedad.Comision+""
                   + ","+propiedad.AreaTotal+""
                   + ", 1"
                   + ",'"+propiedad.FechaRegistro+"'"
                   + ","+propiedad.AreaConstruida+""
                   + ","+propiedad.id_distrito+""
                   //+ ",'"+propiedad.Nro_Documento_vendedor+"'"
                   + ",'no disponible'"
                   + ","+propiedad.Rango+""
                   + ","+propiedad.Id_Dueno+""
                   + ","+propiedad.NroDormitorios+""
                   + ","+propiedad.TipoInmueble+""
                   + ",'"+propiedad.Descripcion+"'"
                   + ","+propiedad.NroBanos+""
                   + ",1"
                   + ",1"
                   + ","+propiedad.id_vendedor+""
                   + ",'no disponible')";
                cadena = cadena + "5";
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                cadena = cadena + "6";
                sqlCmd.ExecuteNonQuery();
                cadena = cadena + "7";
                sqlCon.Close();
                cadena = cadena + "8";

                propiedad.conexion = "Bien";
            }
            catch 
            {
                propiedad.conexion = "Falla en Conexion";
            }
            return propiedad.conexion;
        }

        public List<PropiedadBean> ListarPropiedad(PropiedadBean propiedad)
        {
            System.Diagnostics.Debug.WriteLine("-------------------------------------------->" );

            try
            {
                List<PropiedadBean> listaPropiedad = new List<PropiedadBean>();
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();

               //     "SELECT "+                
               //"id_propiedad"
               //+",Direccion"
               //+",PrecioBase"
               //+",AreaTotal"
               //+",NroDormitorios"
               //+",NroBanos"
               //+",TipoInmueble"
               //+",Estado"
               //+",FechaRegistro"
               //+",id_distrito"
               //+",id_vendedor"
               //+",Nro_Documento_vendedor"
               //+",Id_Dueno "
               // + "FROM propiedad_en_venta where Estado=1 ";

                //string commandString = "select * from(select c.id_propiedad as IdPropiedad,c.Direccion as Direccion,c.PrecioBase as PrecioBase,c.AreaTotal as AreaTotal,c.FechaRegistro as FechaRegistro,d.nombre as Distrito,a.Nombres+' '+a.Apellidos as NombreVendedor,c.Id_Dueno as IdDueno,c.id_vendedor as IdVendedor,c.Estado as EstadoPropiedad from persona a inner join vendedor b on (a.id_persona= b.Id_vendedor) inner join propiedad_en_venta c on(b.Id_vendedor=c.id_vendedor) inner join distrito d on(a.id_distrito=d.id_distrito)where c.Estado=1) r inner join(select distinct (z.id_persona) as IdPropietario,z.Nombres+' '+z.Apellidos as NombreDueno from propiedad_en_venta x inner join habitante y on(x.Id_Dueno=y.id_persona) inner join persona z on (y.id_persona=z.id_persona)) q on (r.IdDueno=q.IdPropietario) where EstadoPropiedad=1 ";
                //string commandString = "select * from(select c.id_propiedad as IdPropiedad,c.Direccion as Direccion,c.PrecioBase as PrecioBase,c.AreaTotal as AreaTotal,c.FechaRegistro as FechaRegistro,d.nombre as Distrito,a.Nombres+' '+a.Apellidos as NombreVendedor,c.Id_Dueno as IdDueno, c.id_vendedor as IdVendedor,c.Estado as EstadoPropiedad from persona a inner join vendedor b on (a.id_persona= b.Id_vendedor) inner join propiedad_en_venta c on(b.Id_vendedor=c.id_vendedor) inner join distrito d on(a.id_distrito=d.id_distrito)where c.Estado=1) r inner join (select distinct (z.id_persona) as IdPropietario,z.Nombres+' '+z.Apellidos as NombreDueno from propiedad_en_venta x inner join (select id_persona from persona where Id_Cargo=10) y on(x.Id_Dueno=y.id_persona) inner join persona z on (y.id_persona=z.id_persona)) q on (r.IdDueno=q.IdPropietario) where EstadoPropiedad=1";
                string commandString = "select * from(select c.id_propiedad as IdPropiedad,c.Direccion as Direccion,c.PrecioBase as PrecioBase,c.AreaTotal as AreaTotal,c.FechaRegistro as FechaRegistro,d.nombre as Distrito,a.Nombres+' '+a.Apellidos as NombreVendedor,c.Id_Dueno as IdDueno, c.id_vendedor as IdVendedor,c.Estado  as EstadoPropiedad from persona a inner join vendedor b on (a.id_persona= b.Id_vendedor) inner join propiedad_en_venta c on(b.Id_vendedor=c.id_vendedor)   inner join distrito d on(a.id_distrito=d.id_distrito)where c.Estado=1) r inner join (select p.Id_Duenio,p.Nombres+' '+p.Apellidos as NombreCliente from duenio p   ) q on (r.IdDueno=q.Id_Duenio) where EstadoPropiedad=1";

                if (propiedad.id_vendedor > 0)
                {
                    commandString += " and IdVendedor = " + propiedad.id_vendedor;
                }

                if (!string.IsNullOrEmpty(propiedad.FechaInicio))
                {
                    commandString += " AND FechaRegistro BETWEEN convert(datetime,'" + propiedad.FechaInicio + "',103)"
                                   + " AND convert(datetime,'" + propiedad.FechaFin + "',103)";
                }

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                //System.Diagnostics.Debug.WriteLine("--------------------------------------------inicio");

                while (dataReader.Read())
                {
                    PropiedadBean Propiedad = new PropiedadBean();
                    //(Descripcion,Lugar,Fecha,Hora,Estado,duracion_estimada,Id_Propiedad,id_persona,id_vendedor)
                    //('probando ingresar','av. los alcanfores','12-12-2012','3:00',1,5,1,17,10)
                    //0IdPropiedad
                    //1Direccion
                    //2PrecioBase
                    //3AreaTotal
                    //4FechaRegistro
                    //5Distrito 
                    //6NombreVendedor
                    //7IdDueno
                    //8IdVendedor
                    //9EstadoPropiedad
                    //10IdPropietario
                    //11NombreDueno
                    Propiedad.id_propiedad = Convert.ToInt32(dataReader[0]);
                    Propiedad.Direccion = Convert.ToString(dataReader[1]);
                    Propiedad.PrecioBase = Convert.ToDouble(dataReader[2]);
                    Propiedad.AreaTotal = Convert.ToDouble(dataReader[3]);
                    //Propiedad.NroDormitorios = Convert.ToInt32(dataReader[4]);
                    //Propiedad.NroBanos = Convert.ToInt32(dataReader[5]);
                    //Propiedad.TipoInmueble = Convert.ToInt32(dataReader[6]);
                    Propiedad.Estado = Convert.ToInt32(dataReader[7]);
                    Propiedad.FechaRegistro = ((DateTime)dataReader[4]).ToString("dd/MM/yyyy");
                    Propiedad.Distrito = Convert.ToString(dataReader[5]);
                    Propiedad.NombreVendedor = Convert.ToString(dataReader[6]);
                    Propiedad.IdDueno = Convert.ToInt32(dataReader[7]);
                    Propiedad.IdVendedor = Convert.ToInt32(dataReader[8]);
                    Propiedad.EstadoPropiedad = Convert.ToInt32(dataReader[9]);
                    Propiedad.IdPropietario = Convert.ToInt32(dataReader[10]);
                    Propiedad.NombreDueno = Convert.ToString(dataReader[11]);
                    
                    // consulta.Nro_Documento = (string)dataReader["Nro_Documento"];


                    listaPropiedad.Add(Propiedad);
                }
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao");
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao " + listaConsulta.Count());
                dataReader.Close();
                sqlCon.Close();
                return listaPropiedad;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("-------------error----------------------fin consulta dao:" + e.ToString());
                propiedad.conexion = e.ToString();
                return null;
            }

        }

        public string EliminarPropiedad(PropiedadBean propiedad)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "UPDATE propiedad_en_venta SET Estado = 0 WHERE id_propiedad = " + propiedad.id_propiedad + "";
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCmd.ExecuteNonQuery();

                sqlCon.Close();

                propiedad.conexion = "Bien";
            }
            catch (Exception e)
            {
                String men = e.ToString();
                propiedad.conexion = men;
            }
            return propiedad.conexion;
        }

        public string ExportarPropiedad(PropiedadBean propiedad)
        {
            //necesario para exportar

            String cadena = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
            String[] a;
            a = cadena.Split(',');
            //String ruta = Application.StartupPath + @"\MiReporte.xlsx";
            String ruta = HttpContext.Current.Server.MapPath("ReportePropiedad.xlsx");
            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook excelBook = excelApp.Workbooks.Open(ruta, vk_update_links, vk_read_only, vk_format, vk_password,
            vk_write_res_password, vk_ignore_read_only_recommend, vk_origin,
            vk_delimiter, vk_editable, vk_notify, vk_converter, vk_add_to_mru,
            vk_local, vk_corrupt_load);
            Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Worksheets.get_Item(1);

            int fila = 5;

            //fin de lo que se necesita para exportar
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();

                string commandString = "SELECT " +
               "id_propiedad"
               + ",Direccion"
               + ",PrecioBase"
               + ",AreaTotal"
               + ",NroDormitorios"
               + ",NroBanos"
               + ",TipoInmueble"
               + ",Estado"
               + ",FechaRegistro"
               + ",id_distrito"
               + ",id_vendedor"
               + ",Nro_Documento_vendedor"
               + ",Id_Dueno "
                + "FROM propiedad_en_venta where Estado=1 ";

                if (propiedad.id_vendedor > 0)
                {
                    commandString += " and id_persona = " + propiedad.id_vendedor;
                }

                if (!string.IsNullOrEmpty(propiedad.FechaInicio))
                {
                    commandString += " AND fecha BETWEEN convert(datetime,'" + propiedad.FechaInicio + "',103)"
                                   + " AND convert(datetime,'" + propiedad.FechaFin + "',103)";
                }

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                //System.Diagnostics.Debug.WriteLine("--------------------------------------------inicio");

                excelWorksheet.Cells[fila, a[0]] = "id_propiedad";
                excelWorksheet.Cells[fila, a[1]] = "Direccion";
                excelWorksheet.Cells[fila, a[2]] = "PrecioBase";
                excelWorksheet.Cells[fila, a[3]] = "AreaTotal";
                excelWorksheet.Cells[fila, a[4]] = "NroDormitorios";
                excelWorksheet.Cells[fila, a[5]] = "NroBanos";
                excelWorksheet.Cells[fila, a[6]] = "TipoInmueble";
                excelWorksheet.Cells[fila, a[7]] = "Estado";
                excelWorksheet.Cells[fila, a[8]] = "FechaRegistro";
                excelWorksheet.Cells[fila, a[9]] = "id_distrito";
                excelWorksheet.Cells[fila, a[10]] = "id_vendedor";
                excelWorksheet.Cells[fila, a[11]] = "Nro_Documento_vendedor";
                excelWorksheet.Cells[fila, a[12]] = "Id_Dueno";
                


                while (dataReader.Read())
                {
                    PropiedadBean Propiedad = new PropiedadBean();
                    //(Descripcion,Lugar,Fecha,Hora,Estado,duracion_estimada,Id_Propiedad,id_persona,id_vendedor)
                    //('probando ingresar','av. los alcanfores','12-12-2012','3:00',1,5,1,17,10)
                    Propiedad.id_propiedad = Convert.ToInt32(dataReader[0]);
                    Propiedad.Direccion = Convert.ToString(dataReader[1]);
                    Propiedad.PrecioBase = Convert.ToDouble(dataReader[2]);
                    Propiedad.AreaTotal = Convert.ToDouble(dataReader[3]);                    
                    Propiedad.NroDormitorios = Convert.ToInt32(dataReader[4]);
                    Propiedad.NroBanos = Convert.ToInt32(dataReader[5]);
                    Propiedad.TipoInmueble = Convert.ToInt32(dataReader[6]);
                    Propiedad.Estado = Convert.ToInt32(dataReader[7]);
                    Propiedad.FechaRegistro = ((DateTime)dataReader[8]).ToString("dd/MM/yyyy");
                    Propiedad.id_distrito = Convert.ToInt32(dataReader[9]);
                    Propiedad.id_vendedor = Convert.ToInt32(dataReader[10]);
                    Propiedad.Nro_Documento_vendedor = Convert.ToString(dataReader[11]);
                    Propiedad.Id_Dueno = Convert.ToInt32(dataReader[12]);
                    // consulta.Nro_Documento = (string)dataReader["Nro_Documento"];

                    fila += 1;

                    excelWorksheet.Cells[fila, a[0]] = Propiedad.id_propiedad;
                    excelWorksheet.Cells[fila, a[1]] = Propiedad.Direccion;
                    excelWorksheet.Cells[fila, a[2]] = Propiedad.PrecioBase;
                    excelWorksheet.Cells[fila, a[3]] = Propiedad.AreaTotal;
                    excelWorksheet.Cells[fila, a[4]] = Propiedad.NroDormitorios;
                    excelWorksheet.Cells[fila, a[5]] = Propiedad.NroBanos;
                    excelWorksheet.Cells[fila, a[6]] = Propiedad.TipoInmueble;
                    excelWorksheet.Cells[fila, a[7]] = Propiedad.Estado;
                    excelWorksheet.Cells[fila, a[8]] = Propiedad.FechaRegistro;
                    excelWorksheet.Cells[fila, a[9]] = Propiedad.id_distrito;
                    excelWorksheet.Cells[fila, a[10]] = Propiedad.id_vendedor;
                    excelWorksheet.Cells[fila, a[11]] = Propiedad.Nro_Documento_vendedor;
                    excelWorksheet.Cells[fila, a[12]] = Propiedad.Id_Dueno;

                    //------listaCita.Add(Cita);
                }
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao");
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao " + listaConsulta.Count());
                dataReader.Close();
                sqlCon.Close();
                excelApp.Visible = true;
            }
            catch (Exception e)
            {
                String men = e.ToString();
                propiedad.conexion = men;
            }
            return propiedad.conexion;
        }

        public List<PropiedadBean> ListarPropiedadMod(PropiedadBean propiedad)
        {
            List<PropiedadBean> listaPropiedad = new List<PropiedadBean>();

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
            sqlCon.Open();

            string commandString0 = "UPDATE propiedad_en_venta SET ";
            commandString0 = commandString0 + "Direccion= '" + propiedad.Direccion + "', ";
            //commandString0 = commandString0 + "PrecioBase	= " + propiedad.PrecioBase + ", ";
            ////commandString0 = commandString0 + "Comision= " + propiedad.Comision + ", ";
            //commandString0 = commandString0 + "AreaTotal= " + propiedad.AreaTotal + ", ";
            //commandString0 = commandString0 + "Estado= " + propiedad.Estado + ", ";
            //commandString0 = commandString0 + "FechaRegistro= '" + propiedad.FechaRegistro + "' ";
            //commandString0 = commandString0 + "AreaConstruida= " + propiedad.AreaConstruida + ", ";
            //commandString0 = commandString0 + "id_distrito= " + propiedad.id_distrito + ", ";
            //commandString0 = commandString0 + "Nro_Documento_vendedor= '" + propiedad.Nro_Documento_vendedor + "', ";
            //commandString0 = commandString0 + "Rango= " + propiedad.Rango + ", ";
            //commandString0 = commandString0 + "Id_Dueno= " + propiedad.Id_Dueno + ", ";
            //commandString0 = commandString0 + "NroDormitorios= " + propiedad.NroDormitorios + ", ";
            //commandString0 = commandString0 + "TipoInmueble= " + propiedad.TipoInmueble + ", ";
            //commandString0 = commandString0 + "Descripcion= '" + propiedad.Descripcion + "', ";
            //commandString0 = commandString0 + "NroBanos= " + propiedad.NroBanos + ", ";
            commandString0 = commandString0 + "id_vendedor= " + propiedad.id_vendedor + " ";
            commandString0 = commandString0 + "where id_propiedad = " + propiedad.id_propiedad+" ";
            SqlCommand sqlCmd0 = new SqlCommand(commandString0, sqlCon);
            sqlCmd0.ExecuteNonQuery();
            //muestra la tabla despues de modificar
           // string commandString = "SELECT " +
           //"id_propiedad"
           //+ ",Direccion"
           //+ ",PrecioBase"
           //+ ",AreaTotal"
           //+ ",NroDormitorios"
           //+ ",NroBanos"
           //+ ",TipoInmueble"
           //+ ",Estado"
           //+ ",FechaRegistro"
           //+ ",id_distrito"
           //+ ",id_vendedor"
           //+ ",Nro_Documento_vendedor"
           //+ ",Id_Dueno "
           // + "FROM propiedad_en_venta where Estado=1 ";
            string commandString = "select * from(select c.id_propiedad as IdPropiedad,c.Direccion as Direccion,c.PrecioBase as PrecioBase,c.AreaTotal as AreaTotal,c.FechaRegistro as FechaRegistro,d.nombre as Distrito,a.Nombres+' '+a.Apellidos as NombreVendedor,c.Id_Dueno as IdDueno, c.id_vendedor as IdVendedor,c.Estado as EstadoPropiedad from persona a inner join vendedor b on (a.id_persona= b.Id_vendedor) inner join propiedad_en_venta c on(b.Id_vendedor=c.id_vendedor) inner join distrito d on(a.id_distrito=d.id_distrito)where c.Estado=1) r inner join (select distinct (z.id_persona) as IdPropietario,z.Nombres+' '+z.Apellidos as NombreDueno from propiedad_en_venta x inner join (select id_persona from persona where Id_Cargo=10) y on(x.Id_Dueno=y.id_persona) inner join persona z on (y.id_persona=z.id_persona)) q on (r.IdDueno=q.IdPropietario) where EstadoPropiedad=1 and IdPropiedad=" + propiedad.id_propiedad;
            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
            SqlDataReader dataReader = sqlCmd.ExecuteReader();

            while (dataReader.Read())
            {
                
                //cliente. = (int)dataReader["idUsuario"];
                PropiedadBean Propiedad = new PropiedadBean();
                //(Descripcion,Lugar,Fecha,Hora,Estado,duracion_estimada,Id_Propiedad,id_persona,id_vendedor)
                //('probando ingresar','av. los alcanfores','12-12-2012','3:00',1,5,1,17,10)
                //-----------------------------del modificar antiguo------------------
                //Propiedad.id_propiedad = Convert.ToInt32(dataReader[0]);
                //Propiedad.Direccion = Convert.ToString(dataReader[1]);
                //Propiedad.PrecioBase = Convert.ToDouble(dataReader[2]);
                //Propiedad.AreaTotal = Convert.ToDouble(dataReader[3]);
                //Propiedad.NroDormitorios = Convert.ToInt32(dataReader[4]);
                //Propiedad.NroBanos = Convert.ToInt32(dataReader[5]);
                //Propiedad.TipoInmueble = Convert.ToInt32(dataReader[6]);
                //Propiedad.Estado = Convert.ToInt32(dataReader[7]);
                //Propiedad.FechaRegistro = ((DateTime)dataReader[8]).ToString("dd/MM/yyyy");
                //Propiedad.id_distrito = Convert.ToInt32(dataReader[9]);
                //Propiedad.id_vendedor = Convert.ToInt32(dataReader[10]);
                //Propiedad.Nro_Documento_vendedor = Convert.ToString(dataReader[11]);
                //Propiedad.Id_Dueno = Convert.ToInt32(dataReader[12]);
                //-----------------------------------------
                Propiedad.id_propiedad = Convert.ToInt32(dataReader[0]);
                Propiedad.Direccion = Convert.ToString(dataReader[1]);
                Propiedad.PrecioBase = Convert.ToDouble(dataReader[2]);
                Propiedad.AreaTotal = Convert.ToDouble(dataReader[3]);

                Propiedad.FechaRegistro = ((DateTime)dataReader[4]).ToString("dd/MM/yyyy");
                Propiedad.Distrito = Convert.ToString(dataReader[5]);
                Propiedad.NombreVendedor = Convert.ToString(dataReader[6]);
                Propiedad.IdDueno = Convert.ToInt32(dataReader[7]);
                Propiedad.IdVendedor = Convert.ToInt32(dataReader[8]);
                Propiedad.EstadoPropiedad = Convert.ToInt32(dataReader[9]);
                Propiedad.IdPropietario = Convert.ToInt32(dataReader[10]);
                Propiedad.NombreDueno = Convert.ToString(dataReader[11]);
                //-----------------------------------------
                //cita2.id_persona = (string)dataReader["Nro_Documento_persona"];
                //cita2.id_vendedor = (string)dataReader["Nro_Documento_vendedor"];


                listaPropiedad.Add(Propiedad);
            }
            dataReader.Close();
            sqlCon.Close();

            return listaPropiedad;
        }

        public List<BusquedaPersona> ListarPropiedadPersona(BusquedaPersona propiedad)
        {
            //System.Diagnostics.Debug.WriteLine("-------------------------------------------->" + Nro_Documento_cliente_web);

            try
            {
                List<BusquedaPersona> listaPersona = new List<BusquedaPersona>();
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                string commandString = "select id_duenio, nombres, apellidos, dni from duenio WHERE Estado = 1";
                if (!string.IsNullOrEmpty(propiedad.Nombres))
                {
                    commandString = commandString + " and Nombres like '%" + propiedad.Nombres + "%'";
                }
                if (!string.IsNullOrEmpty(propiedad.Apellidos))
                {
                    commandString = commandString + " and Apellidos like '%" + propiedad.Apellidos + "%'";
                }
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                //System.Diagnostics.Debug.WriteLine("--------------------------------------------inicio");

                while (dataReader.Read())
                {
                    BusquedaPersona Consulta = new BusquedaPersona();
                    
                    Consulta.Nombres = Convert.ToString(dataReader[1]);
                    Consulta.Apellidos = Convert.ToString(dataReader[2]);
                    Consulta.NroDocumentoPersona = Convert.ToString(dataReader[3]);
                    Consulta.IdPersona = Convert.ToInt32(dataReader[0]);

                    listaPersona.Add(Consulta);
                }
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao");
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao " + listaConsulta.Count());
                dataReader.Close();
                sqlCon.Close();
                return listaPersona;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("-------------error----------------------fin consulta dao:" + e.ToString());
                return null;
            }

        }


        public List<BusquedaVendedor> ListarPropiedadVendedor(BusquedaVendedor propiedad)
        {
            //System.Diagnostics.Debug.WriteLine("-------------------------------------------->" + Nro_Documento_cliente_web);

            try
            {
                List<BusquedaVendedor> listaPropiedad = new List<BusquedaVendedor>();
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                string commandString = "select * from persona where Id_Cargo=7 ";
                if (!string.IsNullOrEmpty(propiedad.Nombres))
                {
                    commandString = commandString + " and Nombres like '%" + propiedad.Nombres + "%'";
                }
                if (!string.IsNullOrEmpty(propiedad.Apellidos))
                {
                    commandString = commandString + " and Apellidos like '%" + propiedad.Apellidos + "%'";
                }
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                //System.Diagnostics.Debug.WriteLine("--------------------------------------------inicio");

                while (dataReader.Read())
                {
                    BusquedaVendedor Consulta = new BusquedaVendedor();
                    Consulta.IdDistrito = Convert.ToInt32(dataReader[0]);
                    Consulta.Nombres = Convert.ToString(dataReader[1]);
                    Consulta.Apellidos = Convert.ToString(dataReader[2]);
                    Consulta.Direccion = Convert.ToString(dataReader[3]);
                    Consulta.NroDocumentoPersona = Convert.ToString(dataReader[4]);
                    Consulta.Telefono = Convert.ToString(dataReader[5]);
                    Consulta.Estado = Convert.ToInt32(dataReader[6]);
                    Consulta.Correo = Convert.ToString(dataReader[7]);
                    Consulta.Genero = Convert.ToString(dataReader[8]);
                    Consulta.TipoDocumento = Convert.ToString(dataReader[9]);
                    //Consulta.usuario = Convert.ToString(dataReader[10]);
                    //Consulta.password = Convert.ToString(dataReader[11]);
                    Consulta.celular = Convert.ToString(dataReader[12]);
                    Consulta.IdCargo = Convert.ToInt32(dataReader[13]);
                    Consulta.IdPersona = Convert.ToInt32(dataReader[14]);

                    listaPropiedad.Add(Consulta);
                }
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao");
                //System.Diagnostics.Debug.WriteLine("--------------------------------------------fin consulta dao " + listaConsulta.Count());
                dataReader.Close();
                sqlCon.Close();
                return listaPropiedad;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("-------------error----------------------fin consulta dao:" + e.ToString());
                return null;
            }

        }

        public static string Subir(List<Upload.PropiedadFilesStatus> statuses, string IdPropiedad)
        {
            SqlConnection sqlCon = null;
            try
            {
                //"(convert(datetime,'" + mantenimientoPreventivo.Fecha + "',103), '"
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                sqlCon = new SqlConnection(cadenaConfiguracion);

                for (int i = 0; i < statuses.Count(); i++)
                {
                    sqlCon.Open();
                    string commandString = "INSERT INTO Imagen(Url, Id_Relacionado, Estado)" +
                                           "VALUES ( '" + statuses[i].name + "'," + IdPropiedad + ", 1)";

                    SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                    sqlCmd.ExecuteNonQuery();
                    sqlCon.Close();
                }
                return "Bien";

            }

            catch (Exception ex)
            {
               // log.Error("RegistrarMantenimientoPreventivo(EXCEPTION): ", ex);
                throw ex;
            }
            finally
            {
                sqlCon.Close();
            }
        }

        public static string Borrar(string filePath, string IdPropiedad)
        {
            SqlConnection sqlCon = null;
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["TheBullysStore"].ConnectionString;

                sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "UPDATE Imagen SET " +
                                       "estado = 0 WHERE Id_Relacionado = '" + IdPropiedad + "'";

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                sqlCmd.ExecuteNonQuery();

                sqlCon.Close();

                return "Bien";

            }
            catch (Exception ex)
            {
                //log.Error("Borrar(EXCEPTION): ", ex);
                throw ex;
            }
            finally
            {
                sqlCon.Close();
            }
        }

    }
}